package controllers;

import java.util.Set;

import models.Jogador;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.lista;
import views.html.detalhar;

public class Jogadores extends Controller{
	private static final Form<Jogador> formularioJogador = Form.form(Jogador.class);
	
	public static Result listar(){
		Set<Jogador> jogadores = Jogador.todosOsJogadores();
		return ok(lista.render(jogadores));
	}
	
	public static Result novoJogador(){
		return ok(detalhar.render(formularioJogador));
	}
	
	public static Result detalhar(String email){
		final Jogador jogador = Jogador.buscaPorEmail(email);
		if(jogador == null)
			return notFound(String.format("Jogador %s não cadastrado", email));
		Form<Jogador> detalhes = formularioJogador.fill(jogador);
		return ok(detalhar.render(detalhes));
	}
	
	public static Result salvar(){
		Form<Jogador> boundForm = formularioJogador.bindFromRequest();
		if(boundForm.hasErrors()){
			flash("error", "Por Favor, Corrija o Formulário");
			return badRequest(detalhar.render(boundForm));
		}
		Jogador jog = boundForm.get();
		jog.salvar();
		flash("success", String.format("Jogador %s adicionado com sucesso", jog));
		return redirect(routes.Jogadores.listar());
	}

}
